Target direction indication and acoustic pulse analysis

ABSTRACT

A method of providing an indication of the direction of a target such as a sniper. A rifle mounted sensor array detects an acoustic pulse originating from the target. The signal is processed to estimate the direction of the target, and an indication is provided when the weapon is aligned with the estimated direction. The direction of arrival of an acoustic pulse is estimated by spectrally decomposing each signal from the sensor so as to generate one or more spectral components for each signal, and processing the spectral components to estimate the direction of arrival.

FIELD OF THE INVENTION

The present invention relates in a first aspect to a method and apparatus for providing an indication of the direction of a target, and in a second aspect to a method and apparatus for estimating the direction of arrival of an acoustic pulse. Both aspects may be employed typically, although not exclusively, in a system for identifying the direction and/or range of a sniper and/or determining the trajectory of a bullet fired by the sniper.

BACKGROUND OF THE INVENTION

U.S. Pat. No. 6,178,141 describes a system for determining the trajectory of a supersonic bullet by observing the shock wave from the bullet. Muzzle blast observations may also be used to estimate the exact sniper location along the trajectory. The sensors are helmet-mounted, and each helmet is supported by wireless communications, GPS and a backpack or otherwise mounted computer system that computes and displays the solutions.

SUMMARY OF THE INVENTION

A first aspect of the invention provides a method of providing an indication of the direction of a target, the method comprising the steps of detecting a signal originating from the target; processing the signal to estimate the direction of the target relative to a weapon; and providing an indication when the weapon is aligned with the estimated direction of the target.

The first aspect of the invention also provides apparatus for providing an indication of the direction of a target, the apparatus comprising a sensor for detecting a signal originating from the target; a processor for processing the signal to estimate the direction of the target relative to a weapon; and a direction indicator for providing an indication when the weapon is aligned with the estimated direction of the target.

The first aspect of the invention presents a new method and apparatus for presenting target direction information to a user. By providing a user with an indication when a weapon (typically held or controlled by the user) is aligned with the estimated direction of a target such as a sniper, the user can quickly and accurately return fire.

Preferably the apparatus comprises an orientation sensor for providing an output indicative of the direction of the weapon, and the direction indicator provides an indication when the output from the orientation sensor indicates that the weapon is aligned with the estimated direction of the target.

The signal originating from the target may be a visual signal (such as a visual muzzle flash) but most preferably the signal is an acoustic signal such as a muzzle blast or projectile shock wave.

The signal may be detected by helmet-mounted sensors as in U.S. Pat. No. 6,178,141. However in some situations it may be preferable for the user to be operating in a “helmets off” environment. Also, if the sensors are helmet-mounted then a complex system must be provided to estimate the target direction relative to the weapon. Therefore preferably the signal is detected by one or more sensors mounted on the weapon.

Preferably the indication is also provided by an indicator mounted on the weapon.

Preferably the sensor, indicator and processor are mounted in a common housing.

In a preferred embodiment an indication is provided when the weapon is aligned with a vertical and/or horizontal plane containing the estimated target direction.

The indication may be visual or audible. In a preferred example the colour of a visual indicator is changed when the weapon is aligned with the estimated direction of the target.

The signal is typically detected by a plurality of sensors which may be arranged in a planar array, or in a volumetric array. Preferably the spacing (or baseline) between the sensors is small, in order to reduce the size of the apparatus. Small spacing does however make it difficult to accurately estimate the target direction. Therefore preferably one of the following methods is used to address this problem:

-   -   i. using a conventional time-of-arrival method in which a         threshold crossing point is detected for each sensor. In this         case the sampling frequency can be increased to take account of         the reduced sensor baseline; or     -   ii. cross-correlating one or more pairs of sensor signals in the         time domain so as to generate one or more cross-correlation         signals which are then used in the target direction estimation;         or     -   iii. spectrally decomposing each sensor signal so as to generate         one or more spectral components for each signal which are then         used in the target direction estimation.

Method iii) is preferred, and is discussed in further detail below with reference to the second aspect of the invention.

The weapon may be a tank or helicopter, but preferably the weapon is a hand-held weapon such as a rifle.

Preferably the (or each) sensor is mounted on the sight of the weapon. This automatically aligns the sensors with the sight and enables more accurate targeting.

The direction and/or range indicators may also be mounted on the sight to provide a compact integrated system.

In U.S. Pat. No. 6,278,141, fine resolution time difference of arrivals, for the shock wave arrivals, are determined via cross-correlation between the channels. The data are interpolated eight times during the cross-correlation process.

A second aspect of the invention provides a method of estimating the direction of arrival of an acoustic pulse, the method comprising:

-   -   a. detecting the pulse with a plurality of sensors so as to         generate a plurality of sensor signals;     -   b. spectrally decomposing each sensor signal so as to generate         one or more spectral components for each signal; and     -   c. processing the spectral components to estimate the direction         of arrival of the acoustic pulse.

The second aspect of the invention also provides apparatus for detecting the direction of arrival of an acoustic pulse by the above method, the apparatus comprising an array of sensors; and a processor programmed to perform steps b and c.

The second aspect of the invention provides a processing method which enables the sensor signals to be sampled at a low rate (which may be as low as the Nyquist rate), whilst maintaining an accurate estimate. Spectrally decomposing the sensor signal reduces the effects of noise, compared with a conventional time-of-arrival method in which a threshold crossing point is detected for each sensor. The second aspect of the invention is particularly suited to use in a volumetric sensor with a small baseline.

In one example of the second aspect of the invention, the direction of arrival is calculated by performing a power versus bearing scan. This provides improved accuracy through “bearing coherent” averaging of noise. However for some applications this method may be overcomplicated. Therefore in a preferred embodiment the pulse is detected with a volumetric array of three or more pairs of sensors in step a. so as to generate three or more pairs of sensor signals; a plurality of pairs of spectral components are generated for each pair of sensor signals in step b; and step c. includes calculating a phase delay between each pair of spectral components, and determining the direction of arrival of the acoustic pulse in accordance with the calculated phase delays. The preferred embodiment is computationally simpler than a power versus bearing scan, and also provides improved accuracy through “bearing coherent” averaging of noise.

The method may be used in any suitable application, but in preferred examples it is used to estimate the direction of a target and/or to estimate the trajectory of a projectile.

BRIEF DESCRIPTION OF THE DRAWINGS

Various embodiments of the present invention will now be described with reference to the accompanying drawings, in which:

FIG. 1 is a perspective view of part of a rifle incorporating an acoustic sensor device;

FIG. 2 is an exploded view of the acoustic sensor device, with some parts omitted;

FIG. 3 is a schematic view of the components of the acoustic sensor device;

FIG. 3 a is a schematic view of the rifle in combination with a PDA and communication device;

FIG. 3 b is a schematic view of the components of a second acoustic sensor device;

FIG. 4 is a schematic view of a bullet trajectory, as viewed in a plane containing the trajectory and receiver;

FIG. 5 is a graph showing a pulse waveform x_(n), a pulse y_(n) with uniform noise spread over the bandwidth of the pulse, and a spectral analysis window function, all used in a simulation of method a;

FIG. 6 is a graph showing spectra for the pulse and noise used in the simulation of method a;

FIG. 7 is a graph shows a pulse waveform, noise waveform, and threshold level used in the simulation of method a;

FIG. 8 is a graph showing bearing errors calculated in the simulation of method a;

FIG. 9 is a graph shows a pulse waveform and noise waveform used in the simulation of method b;

FIG. 10 is a graph showing bearing errors calculated in the simulation of method b;

FIG. 11 is a graph shows a pulse waveform and noise waveform used in the simulation of method c;

FIG. 12 is a graph showing pulse waveforms from two sensors c0 and c2;

FIG. 13 is a graph showing bulk delays for microphone pairs c20 and c31; and

FIG. 14 is a graph showing bearing errors calculated in the simulation of method c.

DETAILED DESCRIPTION OF EMBODIMENTS

FIG. 1 shows a rifle 1 with a sight 2, and an acoustic sensor device 3. The device 3 is shown in further detail in FIG. 2. The device 3 has a pair of mounting legs 4 which are screwed in place onto the sight 3 and a housing comprising upper and lower hemispheres 5,6. A digital range display 7 is mounted on the lower hemisphere 5, in this case showing a range of 800 m. A support plate 8 is screwed onto the lower hemisphere 5. Three light emitting diodes (LEDs) 9 are mounted in the lower hemisphere 5 and one in the upper hemisphere 6

FIG. 3 is a schematic view showing various component parts of the device 3, some of which are omitted from FIG. 1 for clarity. A volumetric array 20 of six miniature microphones is mounted to the support plate 8. The microphones are arranged in orthogonal positions around a sphere, with a diameter of between about 4 and 6 cm. The microphones are digitally sampled by an analogue to digital converter 21 and processed by an embedded digital signal processor (DSP) 22. A pseudo-omni output is formed for automatic detection of impulsive noise. The relative phases of all six microphones are then used to estimate the 3-dimensional direction of arrival of the detected sound. Systematic errors associated with the construction or mounting of the device (e.g. due to resonance, coupling or shading) can be precalibrated. Adaptive processing can be used to reject noise and interference.

The DSP 22 controls the LEDs 9, and range display 7, and also outputs data to a Bluetooth antenna or other wireless data link.

As shown in FIG. 3 a, the Bluetooth antenna communicates with a personal digital assistant (PDA) 23 which is carried by the soldier. The PDA 23 also receives GPS data 24, and displays range and direction information in a map-based format. The PDA 23 is connected to a radio communication device 25 via an RS232 link.

The DSP 22 estimates the direction of the muzzle blast pulse, and the direction of the shock wave pulse. The range is then estimated by the DSP 22 using the method illustrated in FIG. 4. The shot is fired from the left hand corner, and is detected at the right hand corner. The muzzle blast travels directly between the target and the receiver. The shock wave from the passing bullet arrives from a different angle. By measuring the included angle, and the time delay between the two events, and making assumptions about the speed and deceleration of the bullet, a range estimate can be computed.

FIG. 3B is a schematic view of the components of an alternative acoustic sensor device. The device is similar to the device of FIG. 3 a but includes an orientation sensor 23. The orientation sensor 23 contains an inclinometer (which measures the elevation angle of the device relative to the gravity vector) and a compass (which measures the azimuth angle of the device relative to the earth's magnetic field vector). Thus the sensor 23 provides an output indicative of the sensor's direction in space. The device of FIG. 3B operates as follows:

-   -   1. The sensor array 20 outputs an estimated range and direction         of a target to the DSP 22;     -   2. The range display outputs the estimated range;     -   3. The orientation sensor 23 senses the current orientation of         the device, and outputs to the DSP;     -   4. As the rifle is re-oriented, the DSP compares the estimated         direction of the target with the current orientation of the         device;     -   5. If the device is aligned with a horizontal plane containing         the estimated target direction, then the two LEDs 9 on the left         and right-hand side of the range display shown in FIG. 2 change         from red to green;     -   6. If the device is aligned with a vertical plane containing the         estimated target direction, then the two LEDs 9 above and below         the range display shown in FIG. 2 change from red to green.

The comparison in step 4 remains valid whilst the translational position in space of the device is close to the position where the sensor array 20 measured the range and direction. This enables the device to give an immediate detection and localization of a target such as a sniper (for example to a particular window or building) after which usual tactics would apply.

The networked system shown in FIG. 3 a enables the device to be coupled with GPS data 24 which can be used to fix the translational position of the device, and thus update the estimated range and direction of the target as the device is translated.

Extraction of the direction of the target involves two essential steps: (i) measure the propagation delay across the array, and (ii) infer the direction of arrival.

A feature of the sensor array is that it includes three orthogonal axes each with two microphones.

Therefore, direction can simply be extracted by computing the time delay component along each axis, and resolving them to form a direction vector. This direct form of direction estimation is simpler than say a full maximum-likelihood power vs bearing scan of the array, with almost as good results for high SNR pulses.

The preferred method of calculating direction will now be contrasted with other methods which may also be performed by the DSP 22. Three candidate methods are considered in detail:

-   -   a) Measure the time of arrival of the pulse at each microphone         using a threshold crossing technique. Form the direction vector         from the three component delays.     -   b) Cross-correlate each pair of microphones in the time domain,         to estimate the delay based on the whole pulse shape. Form the         direction vector from the three component delays.     -   c) The preferred method: decompose the pulse into its spectral         components; compute the phase delay for each component along         each axis; hence create a direction spectrum (ie. power-weighted         direction vector vs frequency); and sum the weighted direction         vectors, to obtain the overall direction vector.

The relative advantages and disadvantages of each technique are discussed below.

Method ‘a’

The array is small in terms of wavelengths (less than two wavelengths across) which means that if using a direct time-domain measurement method the signals must be sampled at a much higher rate (e.g. 400 kHz vs 20 kHz). This will increase power drain and increase the size of the electronics.

Method ‘b’

The use of correlation-based time measurement means that the necessary high sample rate can be obtained post-correlation, by interpolation. Method ‘b’ also has the advantage over method ‘a’ that using the whole pulse shape provides averaging of the effects of noise, whereas using a threshold-crossing method yields just one time sample per event. However, for sensible length interpolation filters the basic sample rate would have to exceed the Nyquist rate by a factor.

Method ‘c’

Method ‘c’ retains the advantage of method ‘b’ by using the whole pulse shape, but avoids the need to interpolate the correlation output to a very high effective sample rate, so allowing sampling at the Nyquist rate. The phase domain method also provides slightly improved accuracy through ‘bearing coherent’ averaging of noise, rather than just temporal averaging of noise.

Some more explanation of method c. will now be given. An alternative method of using phase in the direction estimation (employing a power vs bearing scan) will also be described.

The signal vector, across all six microphones, for a signal at elevation θ and azimuth θ is as follows: ${s\left( {\theta,\psi,\lambda} \right)} = \begin{pmatrix} {\mathbb{e}}^{j \cdot 2 \cdot \pi \cdot \frac{r}{\lambda} \cdot {\cos{(\psi)}} \cdot {\cos{(\theta)}}} \\ {\mathbb{e}}^{j \cdot 2 \cdot \pi \cdot \frac{r}{\lambda} \cdot {\sin{(\psi)}} \cdot {\cos{(\theta)}}} \\ {\mathbb{e}}^{{- j} \cdot 2 \cdot \pi \cdot \frac{r}{\lambda} \cdot {\cos{(\psi)}} \cdot {\cos{(\theta)}}} \\ {\mathbb{e}}^{{- j} \cdot 2 \cdot \pi \cdot \frac{r}{\lambda} \cdot {\sin{(\psi)}} \cdot {\cos{(\theta)}}} \\ {\mathbb{e}}^{j \cdot 2 \cdot \pi \cdot \frac{r}{\lambda} \cdot {\cos{(\theta)}}} \\ {\mathbb{e}}^{{- j} \cdot 2 \cdot \pi \cdot \frac{r}{\lambda} \cdot {\cos{(\theta)}}} \end{pmatrix}$

So the received signal, at true direction (θ₀ψ₀), in the presence of noise, is ${x(\lambda)} = {{s\left( {\theta_{o},\psi_{o},\lambda} \right)} + \begin{pmatrix} n_{0} \\ n_{1} \\ n_{2} \\ n_{3} \\ n_{4} \\ n_{5} \end{pmatrix}}$

The optimal method of estimating the signal direction, assuming uncorrelated background noise would be to do a power vs bearing scan. ie. for beamweights w given by: w(θ,ψ,λ)=({overscore (s(θ,ψ,λ))})^(T) we find the θ and ψ that maximise the following expression P=w·X·{overscore (w)} ^(T) where X=x(λ)·{overscore (x(λ))}^(T)

However this is overcomplicated for the preferred application.

Let us consider a modified signal vector, in which opposite microphones along each axis are cross-correlated (or equivalently, the complex frequency-domain signals are multiplied in conjugate).

E.g. taking microphones 0 and 2 we have our correlated x-axis sensor: $\begin{matrix} {a_{x} = {s_{0} \cdot \overset{\_}{s_{2}}}} \\ {= {{\mathbb{e}}^{j \cdot 2 \cdot \pi \cdot \frac{r}{\lambda} \cdot {\cos{(\psi)}} \cdot {\cos{(\theta)}}} \cdot \overset{\_}{{\mathbb{e}}^{{- j} \cdot 2 \cdot \pi \cdot \frac{r}{\lambda} \cdot {\cos{(\psi)}} \cdot {\cos{(\theta)}}}}}} \\ {= {\mathbb{e}}^{j \cdot 4 \cdot \pi \cdot \frac{r}{\lambda} \cdot {\cos{(\psi)}} \cdot {\cos{(\theta)}}}} \end{matrix}$ Therefore a(θ, ψ.λ) = 𝕖^(j ⋅ ϕ(θ, ψ, λ)) where ${\phi\left( {\theta,\psi,\lambda} \right)} = \begin{pmatrix} {4 \cdot \pi \cdot \frac{r}{\lambda} \cdot {\cos(\psi)} \cdot {\cos(\theta)}} \\ {4 \cdot \pi \cdot \frac{r}{\lambda} \cdot {\sin(\psi)} \cdot {\cos(\theta)}} \\ {4 \cdot \pi \cdot \frac{r}{\lambda} \cdot {\cos(\theta)}} \end{pmatrix}$

But the direction vector of the true signal (in x y z coordinates) is as follows: ${d\left( {\theta,\psi} \right)} = \begin{pmatrix} {\cos{(\psi) \cdot {\cos(\theta)}}} \\ {\sin{(\psi) \cdot {\cos(\theta)}}} \\ {\cos(\theta)} \end{pmatrix}$

Therefore we see the following relationship, from which signal direction is obtained directly: ${\phi\left( {\theta,\psi,\lambda} \right)} = {4 \cdot \pi \cdot \frac{r}{\lambda} \cdot {d\left( {\theta,\psi} \right)}}$

Therefore, in words, the phase of the cross-correlated microphone pairs, directly yields the signal direction vector, to within a frequency-dependent scale factor. Therefore by analysing the phase of the received pulse, we can estimate the bearing of each spectral component. We can then produce an overall bearing estimate from the power-weighted sum of the component direction vectors. This is not quite optimal (compared to a power bearing scan) but is simpler. Also it does not require any of the microphones to be matched in gain, and only requires them to be phase-matched in pairs, which simplifies construction or calibration of the array.

Example Calculations Maximum frequency fmax := 10000 Hz Speed of sound in air c := 344 m/s Acoustic radius of array r := 0.025 m Acoustic wavelength ${\lambda min}:=\frac{c}{f\quad\max}$ λmin = 0.0344 m Acoustic diameter in wavelengths $\frac{2 \cdot r}{\lambda\quad\max} = 1.4535$ Time delay across array $\tau:=\frac{2 \cdot r}{c}$ τ · 10⁶ = 145.35 μs Time delay for 1 degree bearing $\tau_{1}:={{\tau \cdot \sin}\quad\left( {1 \cdot \frac{\pi}{180}} \right)}$ τ₁ · 10⁶ = 2.536687 μs Sample rate for Nyquist sampling fs_(Nyq) := 2 · fmax fs_(Nyq) · 10⁻³ = 20 kHz Sample rate to resolve 1 degree change ${fs}_{1\quad\deg}:=\frac{1}{\tau_{1}}$ fs_(1deg) · 10⁻³ = 394.21 kHz Three Algorithms Compared

The three algorithms are compared using a simple simulation.

A band-limited pulse is constructed.

An uncorrelated noise background is obtained by phase-randomising band-limited pulses, to ensure simulation consistency regardless of sample rate.

The scenario is run 100 times, with a different true pulse bearing each time, and the resulting accuracy is compared for the three methods.

Sample rates and data collection block lengths for the three methods: ${T_{block}\text{:}} = \frac{16}{f\quad\max}$ T_(block) ⋅ 10³ = 1.6 fs_(a): = 32 ⋅ f  max  fs_(b): = 4 ⋅ f  max  fs_(c): = 2 ⋅ f  max  fs_(a) ⋅ 10⁻³ = 320 fs_(b) ⋅ 10⁻³ = 40 fs_(c) ⋅ 10⁻³ = 20 N_(a): = round(T_(block) ⋅ fs_(a)) N_(b): = round(T_(block) ⋅ fs_(b)) N_(c): = round(T_(block) ⋅ fs_(c)) N_(a) = 512 N_(b) = 64 N_(c) = 32

Nominal pulse, and (approximately) equal energy flat-spectrum pulse used to generate noise.

We assume that the pulse is windowed or gated, so as to exclude extraneous noise. ${f_{o}\text{:}} = \frac{f\quad\max}{2}$ ${{{sync}(x)}\text{:}} = {{if}\left( {{x = 0},1,\frac{\sin(x)}{x}} \right)}$ ${{win}(t)}\text{:}{\sin\left( {\pi \cdot \frac{t}{T_{block}}} \right)}^{4}$ ${{p(t)}\text{:}} = \begin{matrix} {{{sync}\left\lbrack {2 \cdot \pi \cdot \quad\frac{\quad f_{\quad o}}{\quad 2} \cdot \left( {t\quad - \quad\frac{\quad T_{\quad{block}}}{\quad 2}} \right)} \right\rbrack}^{2} \cdot} \\ {\sin\left\lbrack {{2 \cdot \pi \cdot f_{\quad o} \cdot \left( {t - \frac{\quad T_{\quad{block}}}{\quad 2}} \right)} + \frac{\pi}{\quad 4}} \right\rbrack} \end{matrix}$ ${{q(t)}\text{:}} = \begin{matrix} {{{sync}\left\lbrack {2 \cdot \pi \cdot \quad\frac{\quad f_{\quad o}}{\quad 2} \cdot \left( {t\quad - \quad\frac{\quad T_{\quad{block}}}{\quad 2}} \right)} \right\rbrack} \cdot} \\ {\cos\left\lbrack {{2 \cdot \pi \cdot f_{\quad o} \cdot \left( {t - \frac{\quad T_{\quad{block}}}{\quad 2}} \right)} + \frac{\pi}{\quad 4}} \right\rbrack} \end{matrix}$ n: = 0…N_(a) − 1 ${x_{n}\text{:}} = {p\left( {n \cdot \frac{1}{{fs}_{a}}} \right)}$ X:FFT(x) ${y_{n}\text{:}} = {q\left( {n \cdot \frac{1}{{fs}_{a}}} \right)}$ Y: = FFT(y) ${{SNR}_{adjustdB}\text{:}} = {20 \cdot {\log\left( \frac{{stdev}(x)}{{stdev}(y)} \right)}}$ SNR_(adjustdB): = 1.4118

Common simulation parameters and functions

K:=1000

k:=0 . . . K−1

θ_(k):=2·π·k/K

SNR_(dB):=16 ${{{getpulse}\left( {N,{fs},{delay}} \right)}\text{:}} = \left| \begin{matrix} \begin{matrix} {{{for}\quad n} \in {{0\ldots\quad N} - 1}} \\ \left. x_{n}\leftarrow{{p\left( {{n \cdot \frac{1}{fs}} - {delay}} \right)} \cdot {{win}\left( {\frac{n}{N} \cdot T_{block}} \right)}} \right. \end{matrix} \\ x \end{matrix} \right.$ ${{{getnoise}\left( {N,{fs},{SNR}_{dB}} \right)}\text{:}} = \left| \begin{matrix} {{{for}\quad n} \in {{0\ldots\quad N} - 1}} \\ \left| \begin{matrix} {\left. x_{n}\leftarrow{q\left( {n \cdot \frac{1}{\quad{fs}}} \right)} \right.} \\ {\left. w_{n}\leftarrow{{win}\left( {\frac{n}{N} \cdot T_{block}} \right)} \right.} \end{matrix} \right. \\ {\left. X\leftarrow{{CFFT}(x)} \right.} \\ {\left. \phi\leftarrow{{runif}\left( {N,{- \pi},\pi} \right)} \right.} \\ {{{for}\quad n} \in {{0\ldots\quad N} - 1}} \\ {\left. Y_{n}\leftarrow{{X_{n}} \cdot {\mathbb{e}}^{j \cdot \phi_{n}}} \right.} \\ {\left. y\leftarrow{{{Re}\left( {{ICFFT}(Y)} \right)} \cdot 10^{- \frac{{SNR}_{dB} - {SNR}_{adjustdB}}{20}}} \right.} \\ {\overset{\rightarrow}{\left( {y \cdot w} \right)}} \end{matrix} \right.$ Method ‘a’

Generate pulses for each of 100 bearings, for 4 microphones (0=north, 1=east, 2=south, 3=west) ${{pulse}_{a\quad 0}^{\langle k\rangle}\text{:}} = {{getpulse}\left( {N_{a},{fs}_{a},{{- \frac{r}{c}} \cdot {\cos\left( \theta_{k} \right)}}} \right)}$ ${{pulse}_{a\quad 1}^{\langle k\rangle}\text{:}} = {{getpulse}\left( {N_{a},{fs}_{a},{{- \frac{r}{c}} \cdot {\sin\left( \theta_{k} \right)}}} \right)}$ ${{pulse}_{a\quad 2}^{\langle k\rangle}\text{:}} = {{getpulse}\left( {N_{a},{fs}_{a},{\frac{r}{c} \cdot {\cos\left( \theta_{k} \right)}}} \right)}$ ${{pulse}_{a\quad 3}^{\langle k\rangle}\text{:}} = {{getpulse}\left( {N_{a},{fs}_{a},{\frac{r}{c} \cdot {\sin\left( \theta_{k} \right)}}} \right)}$

Generate noise waveforms

noise_(a0) ^(<k>):=getnoise(N_(a),fs_(a),SNR_(dB))

noise_(a1) ^(<k>):=getnoise(N_(a),fs_(a),SNR_(dB))

noise_(a2) ^(<k>):=getnoise(N_(a),fs_(a),SNR_(dB))

noise_(a3) ^(<k>):=getnoise(N_(a),fs_(a),SNR_(dB))

Pulse detection threshold (say set at 4 sigma wrt noise, or ¼ of the peak, whichever is greater) ${{Thresh}_{a}\text{:}} = {\max\left( {{4 \cdot {{stdev}\left( {noise}_{a\quad 0} \right)}},{\frac{1}{4} \cdot {\max\left( {pulse}_{a\quad 0} \right)}}} \right)}$ Thresh_(a) = 0.2392 : = 0…  N_(a) − 1

Compute times of arrival for each pulse ${{{getTOA}\left( {x,T} \right)}\text{:}} = \left| \begin{matrix} \left. n\leftarrow 0 \right. \\ {{while}\quad{\left( {x_{n} < T} \right) \cdot \left( {n < {N_{a} - 1}} \right)}} \\ \left. n\leftarrow{n + 1} \right. \\ n \end{matrix} \right.$ TOA_(a  0_(k)): = getTOA(pulse_(a  0)^(⟨k⟩) + noise_(a  0)^(⟨k⟩), Thresh_(a)) TOA_(a  1_(k)): = getTOA(pulse_(a  1)^(⟨k⟩) + noise_(a  1)^(⟨k⟩), Thresh_(a)) TOA_(a  2_(k)): = getTOA(pulse_(a  2)^(⟨k⟩) + noise_(a  2)^(⟨k⟩), Thresh_(a)) TOA_(a  3_(k)): = getTOA(pulse_(a  3)^(⟨k⟩) + noise_(a  3)^(⟨k⟩), Thresh_(a))

Compute bearing error for each pulse θerr_(a) _(k) :=arg[[(TOA _(a2) _(k) −TOA _(a0) _(k) )+j·(TOA _(a3) _(k) −TOA _(a1) _(k) )]·e ^(−j·θ) ^(k) ] Method ‘b’

Generate pulses for each of 100 bearings, for 4 microphones (0=north, 1=east, 2=south, 3=west) ${{pulse}_{b\quad 0}^{\langle k\rangle}\text{:}} = {{getpulse}\left( {N_{b},{fs}_{b},{{- \frac{r}{c}} \cdot {\cos\left( \theta_{k} \right)}}} \right)}$ ${{pulse}_{b\quad 1}^{\langle k\rangle}\text{:}} = {{getpulse}\left( {N_{b},{fs}_{b},{{- \frac{r}{c}} \cdot {\sin\left( \theta_{k} \right)}}} \right)}$ ${{pulse}_{b\quad 2}^{\langle k\rangle}\text{:}} = {{getpulse}\left( {N_{b},{fs}_{b},{\frac{r}{c} \cdot {\cos\left( \theta_{k} \right)}}} \right)}$ ${{pulse}_{b\quad 3}^{\langle k\rangle}\text{:}} = {{getpulse}\left( {N_{b},{fs}_{b},{\frac{r}{c} \cdot {\sin\left( \theta_{k} \right)}}} \right)}$

Generate noise waveforms

noise_(b0) ^(<k>):=getnoise(N_(b),fs_(b),SNR_(dB))

noise_(b1) ^(<k>):=getnoise(N_(b),fs_(b),SNR_(dB))

noise_(b2) ^(<k>):=getnoise(N_(b),fs_(b),SNR_(dB))

noise_(b3) ^(<k>):=getnoise(N_(b),fs_(b),SNR_(dB))

n:=0 . . . N_(b)−1

Compute time delays for each axis by circular correlation and interpolation ${{{getDT}\left( {x,y} \right)}\text{:}} = \left| \begin{matrix} {\left. X\leftarrow{{CFFT}(x)} \right.} \\ {\left. Y\leftarrow{{CFFT}(y)} \right.} \\ {\left. Z\leftarrow\overset{\rightarrow}{\left( {X \cdot \overset{\_}{Y}} \right)} \right.} \\ {{{for}\quad n} \in {{0\ldots\quad N_{a}} - 1}} \\ {\left. Z_{{intp}_{n}}\leftarrow 0 \right.} \\ {{{for}\quad n} \in {{1\ldots\quad\frac{N_{b}}{2}} - 1}} \\ \left| \begin{matrix} {\left. Z_{{intp}_{n}}\leftarrow Z_{n} \right.} \\ \left. Z_{{intp}_{N_{a} - n}}\leftarrow Z_{N_{b} - n} \right. \end{matrix} \right. \\ {\left. z_{intp}\leftarrow{{ICFFT}\left( z_{intp} \right)} \right.} \\ {{{for}\quad n} \in {{0\ldots\quad N_{a}} - 1}} \\ \left| \begin{matrix} {\left. {sortarray}_{n,0}\leftarrow n \right.} \\ {\left. {sortarray}_{n,1}\leftarrow{z_{{intp}_{n}}} \right.} \end{matrix} \right. \\ {{{mod}\left( {{{{csort}\left( {{sortarray},1} \right)}_{{N_{a} - 1},0} + \frac{N_{a}}{2}},N_{a}} \right)} - \frac{N_{a}}{2}} \end{matrix} \right.$ DT_(b_(20_(k))): = getDT(pulse_(b  2)^(⟨k⟩) + noise_(b  2)^(⟨k⟩), pulse_(b  0)^(⟨k⟩) + noise_(b  0)^(⟨k⟩)) DT_(b_(31_(k))): = getDT(pulse_(b  3)^(⟨k⟩) + noise_(b  3)^(⟨k⟩), pulse_(b  1)^(⟨k⟩) + noise_(b  1)^(⟨k⟩))

Compute each bearing error for each pulse θ  err_(b_(k)): = arg [(DT_(b  20_(k)) + j ⋅ DT_(b  31_(k))) ⋅ 𝕖^(−j ⋅ θ_(k))] Method ‘c’

Generate pulses for each of 100 bearings, for 4 microphones (0=north, 1=east, 2=south, 3=west) ${{pulse}_{c\quad 0}^{\langle k\rangle}\text{:}} = {{getpulse}\left( {N_{c},{fs}_{c},{{- \frac{r}{c}} \cdot {\cos\left( \theta_{k} \right)}}} \right)}$ ${{pulse}_{c\quad 1}^{\langle k\rangle}\text{:}} = {{getpulse}\left( {N_{c},{fs}_{c},{{- \frac{r}{c}} \cdot {\sin\left( \theta_{k} \right)}}} \right)}$ ${{pulse}_{c\quad 2}^{\langle k\rangle}\text{:}} = {{getpulse}\left( {N_{c},{fs}_{c},{\frac{r}{c} \cdot {\cos\left( \theta_{k} \right)}}} \right)}$ ${{pulse}_{c\quad 3}^{\langle k\rangle}\text{:}} = {{getpulse}\left( {N_{c},{fs}_{c},{\frac{r}{c} \cdot {\sin\left( \theta_{k} \right)}}} \right)}$

Generate noise waveforms

noise_(c0) ^(<k>):=getnoise(N_(c),fs_(c),SNR_(dB))

noise_(c1) ^(<k>):=getnoise(N_(c),fs_(c),SNR_(dB))

noise_(c2) ^(<k>):=getnoise(N_(c),fs_(c),SNR_(dB))

noise_(c3) ^(<k>):=getnoise(N_(c),fs_(c),SNR_(dB))

n:=0 . . . N_(c)−1

Compute spectra for each microphone

X_(c0) ^(<k>):=FFT(pulse_(c0) ^(<k>)+noise_(c0) ^(<k>))

X_(c1) ^(<k>):=FFT(pulse_(c1) ^(<k>)+noise_(c1) ^(<k>))

X_(c2) ^(<k>):=FFT(pulse_(c2) ^(<k>)+noise_(c2) ^(<k>))

X_(c3) ^(<k>):=FFT(pulse_(c3) ^(<k>)+noise_(c3) ^(<k>))

Compute bulk delays (by circular correlation, without interpolation) to a resolution of 1 sample (ie. half wavelength max) to eliminate phase ambiguity. ${{{getBulkDT}\left( {x,y} \right)}\text{:}} = \left| \begin{matrix} {\left. X\leftarrow{{CFFT}(x)} \right.} \\ {\left. Y\leftarrow{{CFFT}(y)} \right.} \\ {\left. Z\leftarrow\overset{\rightarrow}{\left( {X \cdot \overset{\_}{Y}} \right)} \right.} \\ {\left. z\leftarrow{{ICFFT}(Z)} \right.} \\ {{{for}\quad n} \in {{0\ldots\quad N_{c}} - 1}} \\ \left| \begin{matrix} {\left. {sortarray}_{n,0}\leftarrow n \right.} \\ {\left. {sortarray}_{n,1}\leftarrow{z_{\quad_{n}}} \right.} \end{matrix} \right. \\ {{{mod}\left( {{{{csort}\left( {{sortarray},1} \right)}_{{N_{c} - 1},0} + \frac{N_{c}}{2}},N_{c}} \right)} - \frac{N_{c}}{2}} \end{matrix} \right.$ BulkDT_(c_(20_(k))): = getBulkDT(pulse_(c  2)^(⟨k⟩) + noise_(c  2)^(⟨k⟩), pulse_(c  0)^(⟨k⟩) + noise_(c  0)^(⟨k⟩)) BulkDT_(c_(31_(k))): = getBulkDT(pulse_(c  3)^(⟨k⟩) + noise_(c  3)^(⟨k⟩), pulse_(c  1)^(⟨k⟩) + noise_(c1)^(⟨k⟩))

Compute direction vector spectrum, accounting for bulk delay phase ambiguity. Frequency Resolution: N_(c) = 32 ${\delta\quad f_{c}\text{:}} = \frac{{fs}_{c}}{N_{c}}$ δ  f_(c) = 625 ${{{freq}_{c}(n)}\text{:}} = {\left( {{{mod}\left( {{n + \frac{N_{c}}{2}},N_{c}} \right)} - \frac{N_{c}}{2}} \right) \cdot \frac{{fs}_{c}}{N_{c}}}$ arrgh(x): = if(x = 0, 0  arg (x)) ${\begin{matrix} {getDvecspect} \\ \begin{pmatrix} {{X\quad 0},{X\quad 1},{X\quad 2},} \\ {{X\quad 3},{{DT}\quad 20},{{DT}\quad 31}} \end{pmatrix} \end{matrix}\text{:}} = \left| \begin{matrix} {{{for}\quad n} \in {{0\ldots\quad\frac{N_{c}}{2}} - 1}} \\ \left| \begin{matrix} {\left. f\leftarrow{{freq}_{c}(n)} \right.} \\ {\left. {z\quad 02}\leftarrow{X\quad{0_{n} \cdot \overset{\_}{X\quad 2_{n}}}} \right.} \\ {\left. {z\quad 13}\leftarrow{X\quad{1_{n} \cdot \overset{\_}{X\quad 3_{n}}}} \right.} \\ {\left. \phi_{{adj}\quad 20}\leftarrow{{2 \cdot \pi \cdot {DT}}\quad{20 \cdot \frac{f}{{fs}_{c}}}} \right.} \\ {\left. \phi_{{adj}\quad 31}\leftarrow{{2 \cdot \pi \cdot {DT}}\quad{31 \cdot \frac{f}{{fs}_{c}}}} \right.} \\ {\left. \theta_{02_{n}}\leftarrow{{{arrgh}\left( {z\quad{02 \cdot {\mathbb{e}}^{{- j} \cdot \phi_{{adj}\quad 20}}}} \right)} + \phi_{{adj}\quad 20}} \right.} \\ \left. \theta_{13_{n}}\leftarrow{{{arrgh}\left( {z\quad{13 \cdot {\mathbb{e}}^{{- j} \cdot \phi_{{adj}\quad 31}}}} \right)} + \phi_{{adj}\quad 31}} \right. \\ \left. m_{n}\leftarrow\sqrt{{z\quad{02 \cdot z}\quad 13}} \right. \end{matrix} \right. \\ {{{for}\quad n} \in {{0\ldots\quad\frac{N_{c}}{2}} - 1}} \\ \left. {Dvec}_{n}\leftarrow{m_{n} \cdot \left( {\theta_{02_{n}} + {j \cdot \theta_{13_{n}}}} \right)} \right. \\ {Dvec} \end{matrix} \right.$ Dvec^(⟨k⟩): = getDvecspect(X_(c  0)^(⟨k⟩), X_(c  1)^(⟨k⟩), X_(c  2)^(⟨k⟩), X_(c  3)^(⟨k⟩), BulkDT_(c  20_(k)), BulkDT_(c  31_(k)))

Compute weighted sum direction vector ${{Dvecsum}_{k}\text{:}} = {\sum\limits_{n = 0}^{\frac{N_{c}}{2} - 1}{Dvec}_{n,k}}$

Compute bearing error for each pulse θ  err_(c_(k)): = arg (Dvecsum_(k) ⋅ 𝕖^(−j ⋅ θ_(k)))

Now compare the three results: ${\begin{pmatrix} {{stdev}\left( {\theta\quad{err}_{a}} \right)} & {{median}\left( \overset{\rightarrow}{{\theta\quad{err}_{a}}} \right)} & {\max\left( \overset{\rightarrow}{{\theta\quad{err}_{a}}} \right)} \\ {{stdev}\left( {\theta\quad{err}_{b}} \right)} & {{median}\left( \overset{\rightarrow}{{\theta\quad{err}_{b}}} \right)} & {\max\left( \overset{\rightarrow}{{\theta\quad{err}_{b}}} \right)} \\ {{stdev}\left( {\theta\quad{err}_{c}} \right)} & {{median}\left( \overset{\rightarrow}{{\theta\quad{err}_{c}}} \right)} & {\max\left( \overset{\rightarrow}{{\theta\quad{err}_{c}}} \right)} \end{pmatrix} \cdot \frac{180}{\pi}} = \begin{pmatrix} 0.6928 & 0.4886 & 2.2567 \\ 0.5096 & 0.3562 & 1.4211 \\ 0.3638 & 0.2388 & 1.2215 \end{pmatrix}$

So typically method c wins, whether compared in terms of standard deviation, median, or maximum error. However, the advantage is not overwhelming, so the main advantage is that we can use a lower sample rate (and hence use less standby power).

Note that this analysis does not account for frequency-dependent bearing distortion (e.g. short multipath reception), and so there may be further, possibly more significant, advantages in bearing coherent processing when more complex environments are considered.

Although the invention has been described above with reference to one or more preferred embodiments, it will be appreciated that various changes or modifications may be made without departing from the scope of the invention as defined in the appended claims. 

1. A method of providing an indication of the direction of a target, the method comprising the steps of detecting a signal originating from the target; processing the signal to estimate the direction of the target relative to a weapon; and providing an indication when the weapon is aligned with the estimated direction of the target.
 2. A method according to claim 1 wherein the signal is an acoustic signal.
 3. A method according to claim 1 wherein the signal is detected by one or more sensors mounted on the weapon.
 4. A method according claim 1 wherein the indication is provided by an indicator mounted on the weapon.
 5. A method according to claim 1 further comprising detecting when the weapon is aligned with a vertical plane containing the estimated direction of the target; and providing an indication as a result of that detection.
 6. A method according to claim 1 further comprising detecting when the weapon is aligned with a horizontal plane containing the estimated direction of the target; and providing an indication as a result of that detection.
 7. A method according to claim 1 wherein the indication is provided by displaying a visual indicator.
 8. A method according to claim 1 wherein the signal is detected by a plurality of sensors.
 9. A method according to claim 8 wherein the plurality of sensors are arranged in a volumetric array.
 10. A method according to claim 1 comprising detecting a muzzle signal, and estimating the direction of the target from the detected muzzle signal.
 11. A method according to claim 1 further comprising detecting a projectile shock wave, estimating a range of the target from the detected projectile shock wave; and providing an indication of the estimated range of the target.
 12. A method according to claim 1 comprising: a. detecting the signal with a plurality of sensors so as to generate a plurality of sensor signals; b. spectrally decomposing each sensor signal so as to generate one or more spectral components for each signal; and c. processing the spectral components to estimate the direction of the target.
 13. A method according to claim 1 comprising: a. detecting the signal with a plurality of sensors so as to generate a plurality of sensor signals; b. cross-correlating one or more pairs of the sensor signals in the time domain so as to generate one or more cross-correlation signals; and c. processing the cross-correlation signal(s) to estimate the direction of the target.
 14. Apparatus for providing an indication of the direction of a target, the apparatus comprising a sensor for detecting a signal originating from the target; a processor for processing the signal to estimate the direction of the target relative to a weapon; and a direction indicator for providing an indication when the weapon is aligned with the estimated direction of the target.
 15. Apparatus according to claim 14 further comprising a common housing containing the sensor, indicator and processor.
 16. A weapon comprising apparatus according to claim
 14. 17. A weapon according to claim 16 wherein the weapon is a hand-held weapon.
 18. A weapon according to claim 16 comprising a sight, wherein the or each sensor is mounted on the sight.
 19. A weapon according to claim 16 comprising a sight, wherein the direction indicator is mounted on the sight.
 20. A weapon according to any of claims 16 comprising a sight, wherein a range indicator is mounted on the sight.
 21. A method of estimating the direction of arrival of an acoustic pulse, the method comprising: a. detecting the pulse with a plurality of sensors so as to generate a plurality of sensor signals; b. spectrally decomposing each sensor signal so as to generate one or more spectral components for each signal; and c. processing the spectral components to estimate the direction of arrival of the acoustic pulse.
 22. A method according to claim 21 wherein the pulse is detected with a volumetric array of three or more pairs of sensors in step a. so as to generate three or more pairs of sensor signals; wherein a plurality of pairs of spectral components are generated in step b. for each pair of sensor signals; and wherein step c. includes calculating a phase delay between each pair of spectral components, and estimating the direction of arrival of the acoustic pulse in accordance with the calculated phase delays.
 23. A method according to claim 21 wherein the direction of arrival is estimated in step c. by performing a power versus bearing scan.
 24. A method of detecting the direction of a target, the method comprising detecting the direction of arrival of an acoustic pulse from the target by a method according to claim 21, and inferring the direction of the target from the estimated direction of arrival.
 25. A method of detecting the trajectory of a projectile, the method comprising detecting the direction of arrival of an acoustic pulse from the projectile by a method according to claim 21, and inferring the trajectory of the projectile from the estimated direction of arrival.
 26. Apparatus for detecting the direction of arrival of an acoustic pulse by a method according to claim 21, the apparatus comprising a plurality of sensors; and a processor programmed to perform steps b and c. 